package com.xiaohan.usercenter.exception;

import com.xiaohan.usercenter.common.ErrorCode;
import lombok.Getter;

/**
 * @program: backend
 * @description: 自定义异常类
 * @author: 韩小豪
 * @create: 2025-02-27 23:04
 **/

@Getter
//@Setter   //一般不对外提供对该类对象成员属性的修改，因此无需创建set方法
public class CustomException extends RuntimeException {

	private static final long serialVersionUID = -3174338599598931823L;

	/**
	 * 错误代码
	 */
	private final int code;

	/**
	 * 错误描述
	 */
	private final String description;

	//通过自定义三个参数创建
	public CustomException(int code, String msg, String description) {
		super(msg);   //设置父类异常RuntimeException的错误信息
		this.code = code;
		this.description = description;
	}

	//通过封装好的错误响应结果创建
	public CustomException(ErrorCode errorCode) {
		super(errorCode.getMsg());   //设置父类异常RuntimeException的错误信息
		this.code = errorCode.getCode();
		this.description = errorCode.getDescription();
	}

	//通过自定义的描述创建【不使用封装好的错误响应结果】
	public CustomException(ErrorCode errorCode, String description) {
		super(errorCode.getMsg());   //设置父类异常RuntimeException的错误信息
		this.code = errorCode.getCode();
		this.description = description;
	}

}
